<?php
namespace  Entidades\Organizacion\Logica;
use Entidades\Organizacion\Fisica\CapacidadFunc;

use Doctrine\Common\ClassLoader,
    Doctrine\ORM\Configuration,
    Doctrine\ORM\EntityManager,
    Doctrine\Common\Cache\ApcCache,
    Entidades\Workflow\Descripcion\Red,
    Entidades\Workflow\Descripcion\Arco,
    Entidades\Workflow\Descripcion\Lugar,
    Entidades\Workflow\Descripcion\Transicion,
    Entidades\Organizacion\Logica\UnidadLogica,
    Entidades\Organizacion\Logica\CapacidadFuncComp;
    

$dirBase = __DIR__.'/..';
require_once $dirBase.'/../doctrine-orm/Doctrine/Common/ClassLoader.php';


// Set up class loading. You could use different autoloaders, provided by your favorite framework,
// if you want to.
$dirDoctrine = $dirBase.'/../doctrine-orm';
$classLoader = new ClassLoader('Doctrine\ORM', realpath($dirDoctrine));

$classLoader->register();
$classLoader = new ClassLoader('Doctrine\DBAL', realpath($dirDoctrine));
$classLoader->register();
$classLoader = new ClassLoader('Doctrine\Common', realpath($dirDoctrine));
$classLoader->register();
$classLoader = new ClassLoader('Symfony', realpath($dirDoctrine.'/Symfony'));
$classLoader->register();
$classLoader = new ClassLoader('Entidades', $dirBase.'/Proyecto');
$classLoader->register();
$classLoader = new ClassLoader('Proxies', $dirBase.'/Proyecto');
$classLoader->register();


$config = new Configuration;


$cache = new ApcCache;

$config->setMetadataCacheImpl($cache);


$driverImpl = $config->newDefaultAnnotationDriver(array($dirBase."/Proyecto/Entidades"));
$config->setMetadataDriverImpl($driverImpl);
$config->setQueryCacheImpl($cache);

// Proxy configuration
$config->setProxyDir($dirBase. '/Proyecto/Proxies');
$config->setProxyNamespace('Proxies');
$config->setMetadataCacheImpl(new \Doctrine\Common\Cache\ArrayCache);


$connectionOptions = array(
	    'driver' => 'pdo_mysql',
	    'dbname' => 'workflow',
	    'user' => 'p2a',
	    'password' => 'p2a',
	    'host' => 'localhost');


// Create EntityManager
$em = EntityManager::create($connectionOptions, $config);

$dql = "SELECT result FROM Entidades\Organizacion\Logica\UnidadLogica result where result.idUnico like 'ul1'";


$query = $em->createQuery($dql);

$unidades = $query->getResult();

echo "paso hay ", count($unidades), " unidad \n";

echo "tiene funcionalides asociadas ", count($unidades[0]->getCapacidades() ), "--\n";

$query = $em->createQuery("SELECT fc FROM Entidades\Organizacion\Generales\FuncionalidadCompleja fc where fc.idUnico like 'idfc2'");
$funcionalidadesCom = $query->getResult();

echo "paso hay ", count($funcionalidadesCom), " func \n";

$capacidad = new CapacidadFuncComp();

$unidades[0]->setCapacidades($capacidad,$funcionalidadesCom[0]);

$em->persist($capacidad);

$em->persist($unidades[0]);

$em->flush();


echo "paso hay se creo \n";
